// 数字工具

/**
 * 格式化金额
 * @param amount 金额
 * @param precision 精度
 */
export const formatAmount = (amount: number | string, precision = 2): string => {
  return Number(amount).toFixed(precision);
};

/**
 * 格式化百分比
 * @param percent 百分比
 * @param precision 精度
 */
export const formatPercent = (percent: number | string, precision = 2): string => {
  return `${Number(percent).toFixed(precision)}%`;
};

/**
 * 格式化数字(每三位加逗号)
 * @param num 数字
 */
export const formatNumber = (num: number | string): string => {
  return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
};

/**
 * 数字范围限制
 * @param num 数字
 * @param min 最小值
 * @param max 最大值
 */
export const clamp = (num: number, min: number, max: number): number => {
  return Math.min(Math.max(num, min), max);
};

/**
 * 随机数生成
 * @param min 最小值
 * @param max 最大值
 */
export const random = (min: number, max: number): number => {
  return Math.floor(Math.random() * (max - min + 1) + min);
};
